import axios from "axios";

// 创建 axios 实例
const request = axios.create({
  baseURL: "", // 基础URL
  timeout: 20000, // 请求超时时间
});

// 添加请求拦截器
request.interceptors.request.use(
  (config) => {
    // 如果请求不是登录接口，则在请求头中添加 token
    if (config.url !== "/sys/login") {
      config.headers.token = sessionStorage.getItem("token");
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);
// 添加响应拦截器
request.interceptors.response.use(
  (response) => {
    // 获取后端返回的状态码
    const code = response.data.code;
    if (code === 200) {
      // 如果请求成功，返回数据
      return response.data.data;
    } else if (code === 401) {
      // 如果 token 失效，跳转到登录页面
      router.push("/login");
    } else {
      // 其他情况返回响应数据
      return response.data;
    }
  },
  (error) => {
    return Promise.reject(error);
  }
);
//添加路由守卫
router.beforeEach((to, from, next) => {
  const token = sessionStorage.getItem("token");
  if (to.path === "/login") {
    next();
  } else {
    if (token) {
      next();
    } else {
      next("/login");
    }
  }
})
export default request;
